package com.yuandian.customer.perception.service;

import com.yuandian.api.customer_perception.po.IndexParamsPo;
import com.yuandian.bpm.common.core.util.R;

import java.text.ParseException;

/**
 * 说明：首页service接口
 * @Author yanjun
 * @Date 2021/3/8 13:22
 */
public interface IIndexService {

    /**
     * 查询系统类型统计量topN
     * @param params 首页请求对象
     * @return 通用返回对象
     */
    R<Object> querySystemTypeTopNItem(IndexParamsPo params);

    /**
     * 查询业务统计量topn(总数量降序前n个重点业务)
     * @param params 首页请求对象
     * @return 通用返回对象
     */
    R<Object> queryBusiTopNItem(IndexParamsPo params);

    /**
     * 首页项查询(总业务)(一条数据，如果查询出多条数据会报错)
     * @param params 首页请求对象
     * @return 通用返回对象
     */
    R<Object> queryBusiAllItem(IndexParamsPo params);

    /**
     * 首页项查询(服务用户数)(一条数据，如果查询出多条数据会报错)
     * @param params 首页请求对象
     * @return 通用返回对象
     */
    R<Object> queryUserCountItem(IndexParamsPo params);

    /**
     * 根据系统类型查询首页项趋势
     * @param params 首页请求对象
     * @return 通用返回对象
     */
    R<Object> queryItemTrendBySystemType(IndexParamsPo params);

    /**
     * 查询首页项趋势
     * @param params 首页请求对象
     * @return 通用返回对象
     */
    R<Object> queryItemTrend(IndexParamsPo params);

    /**
     * 查询地图区域业务量列表
     * @param params 首页请求对象
     * @return 通用返回对象
     */
    R<Object> queryAreaBusiList(IndexParamsPo params);

    /**
     * 查询地图区域办事处列表
     * @param params 首页请求对象
     * @return 通用返回对象
     */
    R<Object> queryHallBusiList(IndexParamsPo params);

    /**
     * 查询营业员活跃趋势
     * @param params 首页请求对象
     * @return 通用返回对象
     */
    R<Object> queryOperatorOnlineTrend(IndexParamsPo params) throws ParseException;


    /**
     * 查询营业员活跃趋势跨天
     * @param params 首页请求对象
     * @return 通用返回对象
     */
    R<Object> queryOperatorOnlineTrendCrossDay(IndexParamsPo params) throws ParseException;

    /**
     * 查询业务告警类型
     * @param params 首页请求对象
     * @return 通用返回对象
     */
    R<Object> queryBusiAlarmType(IndexParamsPo params);

    /**
     * 查询告警业务统计数
     * @param params 首页请求对象
     * @return 通用返回对象
     */
    R<Object> queryBusiAlarmStatisCount(IndexParamsPo params);

    /**
     * 查询告警业务TopN
     * @param params 首页请求对象
     * @return 通用返回对象
     */
    R<Object> queryBusiAlarmTopN(IndexParamsPo params);
}
